Android onMeasure


VeiewGroup

高宽参数

UNSPECIFIED 0

这说明parent没有对child强加任何限制,child可以是它想要的任何尺寸。这个上限 是子布局的最小需要值 即便自布局设置match_parent也无用 设置的小于自布局的最小需要值 那就是布局的最小需要值 所以不可能会显示不完整

EXACTLY 1073741824

Parent为child决定了一个绝对尺寸,child将会被赋予这些边界限制,不管child自己想要多大。 赋值多大就是多大 即便是父布局不够 也继续外延,如果父布局不够 可能显示不全

AT_MOST -2147483648

Child可以是自己任意的大小,但是有个绝对尺寸的上限 这个上限 是子布局的最小需要值 即便自布局设置match_parent也无用 设置的小于自布局的最小需要值 那就是设置的值 所以可能会显示不完整

measureChildren时候:

如果子View指定了宽度或者高度的值为数字值(非wrap或者fill)
但是父Group里面却是EXACTLY或者AT_MOST 则会起冲突 父类里除了
自定义的别的都不会显示。 高和宽的设定都会有影响。

但是父布局设置成UNSPECIFIED时不会对View的onMeasure产生影响。

ViewGroup measureChildren的时候使用EXACTLY 如果View是Wrap或者fill,Group会无视,View会依照Group的要求measure,AT_MOST的话 View会无视Group

视图大小的控制是由父视图、布局文件、以及视图本身共同完成的,父视图会提供给子视图参考的大小,而开发人员可以在XML文件中指定视图的大小,然后视图本身会对最终的大小进行拍板